
Erros: Tipo (T), Modo (M), Domnio (D), Semntico (S)

--------------------------------------------

Predicados de atribuio (normais, "backtracktable", criao, constantes)


[1] := 5 ::: throw(_). -- T

1 := 5 ::: throw(_). -- T

array_new(X), X := 5 ::: throw(_). -- T

NONSENSE := 5 ::: throw(_). -- M

--

Predicado de consulta (+A =: -T)


[1] =: TERM ::: throw(_). -- T

1 =: TERM ::: throw(_). -- T

array_new(X), X =: TERM ::: throw(_). -- T

NONSENSE =: TERM ::: throw(_). -- M

--

Semnticos:



a := 5. a =: 5 ::: true.


a &:= 5. a =: 5 ::: false.


a := term, a &:= 5. a =: term :::true.


c #:= term, c := term2 ::: throw(_).


a := term, p := a, p =: A, A =: term ::: true.


a := 5, b ?:= term, b := 5 ::: true.


[] := 5 ::: true.


'some atom' := term ::: true.


------------------------------------------

WITH_IVAR

with_ivar(+A,+T,+G)



with_ivar(1, term, true) ::: throw(_) -- T


with_ivar([1], term, true) ::: throw(_) -- T


array_new(X), with_ivar(X, term, true) ::: throw(_) -- T


with_ivar(X, term, true) ::: throw(_) -- M


with_ivar(a, term, true) ::: true. -- S


------------------------------------------


IVAR_DELETE

ivar_delete(+A)



ivar_delete(1) ::: throw(_) -- T


ivar_delete([1], ::: throw(_) -- T


array_new(X), ivar_delete(X) ::: throw(_) -- T


ivar_delete(X) ::: throw(_) -- M


a := term, ivar_delete(a) ::: true. -- S


a := term, ivar_delete (a), a =: _ ::: false. -- S


ivar_delete(a) ::: true. -- S









